local bag = require("bag.Proto")
local role = require("role.Proto")

CG_PET_COMBAT = {
  {"id", 1, "int"},     
}

CG_PET_CALLBACK = {
}

GC_PET_REVIVE_SEC ={
  {"sec", 1, "int"},
}

GC_PET_HEAD_HP = {
  {"hp", 1, "int"},
  {"hp_max", 1, "int"},
}

GC_PET_ERR = {--错误信息
  {"err", 1, "string"},
}

GC_PET_TALK = {
{"txt", 1, "string"},
}

GC_ALL_PET_ADD_ROLE_ATTR = {
  {"addAttr", 10, role.Attr}, --所有神将增加的角色属性 
  {"curAtticAddAttr", 10, role.Attr}, --当前神将阁增加的属性值  
  {"power", 1, "int"},  --增加的属性战斗力
}

petInfo = { 
  {"id", 1, "bit", 3}, --神将id
  {"lv", 1, "bit", 8}, --神将等级
  {"exp", 1, "int"}, --神将当前经验值
  {"totalExp", 1, "int"}, --神将升级所需经验值
  {"head", 1, "bit", 8}, --神将头像
  {"viewInfo", 1, require("scene.Proto").ViewInfo}, --神将形象
  {"status", 1, "bit", 3}, --神将状态，0为未获得，1为已获得,未出站，2为已出战
  {"name", 1, "string"}, --名字
  {"zi", 1, "string"},  --神将的字
  {"star", 1, "bit", 4}, --星级
  {"stage", 1, "bit", 6}, --阶数
  {"remainTime", 1, "int"}, --限时神将剩余时间
  {"needItem", 1, bag.ItemData}, --神将激活所需道具和数量
  {"starUpCnt", 1, "int"}, --神将升星所需道具数量
  {"starUpYL", 1, "int"},  --升星所需银两
  {"stageUpYL", 1, "int"},  --升阶所需银两
  {"feedPA", 4, role.Attr}, --已培养神将属性
  {"feedRA", 4, role.Attr},  --已培养人物属性
  {"maxFeedPA", 4, role.Attr}, --最大培养神将属性
  {"maxFeedRA", 4, role.Attr}, --最大培养人物属性
  {"equips", 4, bag.ItemData}, --当前所需装备
  {"equipStatus", 4, "bit", 3}, --装备状态，0是未装备，1是已装备
  {"nextStarAddPA", 8, role.Attr}, --下一星增加的神将属性值
  {"nextStarAddRA", 8, role.Attr}, --下一星增加的角色属性值
  {"curAttr", 8, role.Attr}, --神将当前属性值
  {"power", 1, "int"}, --神将当前战斗力
  {"curAddRA", 4, role.Attr},  --当前增加的角色属性
  {"curAddRAPower", 1, "int"}, --当前增加的角色战斗力
  {"nextStageAPA", 8, role.Attr}, --下一阶增加的神将属性
  {"nextStageARA", 8, role.Attr}, --下一阶增加的角色属性
  {"nextStarPAPower", 1, "int"}, --下一星神将战斗力
  {"nextStarRAPower", 1, "int"}, --下一星增加的人物属性战斗力
  {"nextStagePAPower", 1, "int"}, --下一阶神将战斗力
  {"nextStageRAPower", 1, "int"}, --下一星增加的人物属性战斗力
  {"scale", 1, "double"}, --神将缩放
  {"skill", 7, require("skill.Proto").SkillData},  -- 技能信息    
}

GC_UPDATE_PET = { --更新单个神将
  {"info", 1, petInfo}
}

GC_PET_LIST = { --神将列表
  {"list", 15, petInfo},
  {"feedYinliang", 1, "int"}, --神将培养所需银两      
}

CG_PET_JIHUO = { --激活神将
  {"id", 1, "int"}
}

CG_PET_STAR_UP = { --神将升星
  {"id", 1, "int"}
}

CG_PET_STAGE_UP = { --神将升阶
  {"id", 1, "int"}
}

CG_PET_FEED = { --神将培养
  {"id", 1, "int"},
  {"type", 1, "int"}, --0为单个碎片培养，其他为消耗碎片数量
}

CG_PET_STATUS_CHANGE = { --神将状态改变，
  {"id", 1, "int"}
}

CG_PET_EQUIP_HECHENG = { --神将装备合成
  {"id", 1, "int"}, --神将id
  {"equipIndex", 1, "int"} --装备索引
}
petEquipInfo = {
  {"needItem", 4, bag.ItemData}, --合成所需道具
  {"needYL", 1, "int"}, --合成所需银两
  {"needLv", 1, "int"}, --合成所需等级
}
GC_CHECK_PET_EQUIP = { --返回装备所需材料
  {"info", 4, petEquipInfo}, 
  {"id", 1, "int"}, --神将
}
CG_CHECK_PET_EQUIP = { --查看神将装备，返回所需的材料。如果已装备，则不用发这个协议
  {"id", 1, "int"}, --神将id
}
GC_LIMIT_PET_EXPIRE = { --限时神将已到期
}

GC_PET_ATTIC_INFO = {
  {"curLv", 1, "int"}, --当前神将阁等级
  {"curPro", 1, "int"}, --当前进度
  {"totalPro", 1, "int"}, --总进度
  {"curAddPer", 1, "int"}, --当前神将阁增加的属性百分比 
  {"nextAddPer", 1, "int"}, --下一阶神将阁增加的属性百分比
  {"curAddAttr", 10, role.Attr}, --当前神将阁增加的属性值
  {"nextAddAttr", 10, role.Attr}, --下一级神将阁总属性
  {"nextPower", 1, "int"}, --下一级神将阁总战力
  {"nextNeedItem", 2, bag.ItemData}, --升级下一级神将阁所需道具
}
CG_PET_ATTIC_LV_UP = { --神将阁升级
}

GC_PET_LV_UP_ITEM_INFO = { --神将升级道具
  {"item", 3, bag.ItemData}
}
CG_PET_LV_UP = { --神将用道具升级
  {"id", 1, "int"}, --神将id
  {"itemId", 1, "int"}, --道具id
  {"cnt", 1, "int"}, --道具数量
}

GC_UPDATE_PET_EXP = {
  {"id", 1, "int"}, --神将id
  {"exp", 1, "int"}, --神将当前经验值
  {"totalExp", 1, "int"}, --神将升级所需经验值
}
